package com.sale.system.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sale.common.mybatis.core.mapper.BaseMapperPlus;
import com.sale.system.api.domain.SysMaterial;
import com.sale.system.api.domain.dto.FinishAndRawDto;
import com.sale.system.domain.MaterialRaw;
import com.sale.system.domain.dto.MaterialRawDto;
import com.sale.system.domain.dto.ProjectRecursionDto;
import com.sale.system.domain.vo.MaterialRawVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description 原料信息
 * @Date 23-07-13
 * @Author hl
 **/
public interface MaterialRawMapper extends BaseMapperPlus<MaterialRawMapper, MaterialRaw, MaterialRaw> {

    /**
     * 分页查询原料信息
     *
     * @param build 原料信息,pageQuery 分页参数
     * @return  TableDataInfo<MaterialRaw>
     */
    Page<MaterialRawDto> selectRawList(@Param("page") Page<MaterialRawVo> build,@Param(Constants.WRAPPER) Wrapper<MaterialRawVo> buildQueryWrapper);

    /**
     * 树结构展示
     *
     * @param
     * @return 原料信息集合
     */
    List<ProjectRecursionDto> selectChildrenRawThe();

    /**
     * 查询单个原料信息
     *
     * @param materialId 原料信息
     * @return MaterialRaw
     */
    MaterialRawDto selectRawById(long materialId);

    /**
     * 根据编码获取单个原料信息
     */
    MaterialRawDto selectDataByCode(String materialCode);

    SysMaterial selectMaterialRawOnCode(String materialCode);

    /**
     * 查询原料信息
     * @param materialCode
     */
    FinishAndRawDto getFinishAndRaw(String materialCode);
}
